package cn.sytton.taffe.web.flw.service;

import cn.sytton.taffe.web.flw.entity.FormDefStructureEntity;
import cn.sytton.taffe.framework.base.service.IBaseService;

/**
 * <p>
 * 工作流表单_结构表 服务类
 * </p>
 *
 * @author rock
 * @since 2023-09-27
 */
public interface IFormDefStructureService extends IBaseService<FormDefStructureEntity> {


    /**
     * 添加实体并激活
     * @param entity
     */
    FormDefStructureEntity createAndActive(FormDefStructureEntity entity);

    /**
     * 更新并激活
     * @param entity
     * @return
     */
    FormDefStructureEntity updateAndActive(FormDefStructureEntity entity);

    /**
     * 创建
     * @param formId
     * @return
     */
    FormDefStructureEntity create(String formId);

    /**
     * 根据表单删除结构
     * @param formIds
     */
    void removeByFormIds(String... formIds);

    /**
     * 激活，并加载
     * @param formId
     * @param structureId
     * @return
     */
    FormDefStructureEntity active(String formId, String structureId);

    /**
     * 根据表单ID查询当前激活的表单结构
     * @param formId
     * @return
     */
    FormDefStructureEntity findByFormId(String formId);
}
